/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.informet.ipd.modelo.dao;

import com.informet.ipd.modelo.vo.RolUsuarioVO;
import com.informet.ipd.modelo.vo.UsuarioVO;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author LAPTOP01
 */
public class UsuarioDao extends DBase{


  Connection conn = null;

    public UsuarioDao() {
   super();
    }



    private void setUsuario(UsuarioVO bean, ResultSet rs) throws SQLException {
      bean.setCH_CELULAR(rs.getString("CH_CELULAR"));
      bean.setCH_ESTADO(rs.getString("CH_ESTADO"));
      bean.setCH_TELEFONO(rs.getString("CH_TELEFONO"));
      bean.setDT_FECHA_ACTUALIZACION(rs.getString("DT_FECHA_ACTUALIZACION"));
      bean.setDT_FECHA_CREACION(rs.getString("DT_FECHA_CREACION"));
      bean.setNUM_DEPENDENCIA(rs.getInt("NUM_DEPENDENCIA"));
      bean.setNUM_USUARIOID(rs.getInt("NUM_USUARIOID"));
      bean.setTX_APELLIDO(rs.getString("TX_APELLIDO"));
      bean.setTX_CARGO(rs.getString("TX_CARGO"));
      bean.setTX_MAIL(rs.getString("TX_MAIL"));
      bean.setTX_MAIL2(rs.getString("TX_MAIL2"));
      bean.setTX_NOMBRE(rs.getString("TX_NOMBRE"));
      bean.setTX_USUARIO_NAME(rs.getString("TX_USUARIO_NAME"));
      bean.setTX_USUARIO_PASS(rs.getString("TX_USUARIO_PASS"));




    }
     private void setUsuarioTable(UsuarioVO bean, ResultSet rs) throws SQLException {
      bean.setNUM_USUARIOID(rs.getInt("NUM_USUARIOID"));
      bean.setTX_USUARIO_NAME(rs.getString("TX_USUARIO_NAME"));
      bean.setTX_USUARIO_PASS(rs.getString("TX_USUARIO_PASS"));




    }

    private void setUsuarioLogeo(UsuarioVO bean, ResultSet rs) throws SQLException {
      bean.setTX_USUARIO_NAME(rs.getString("TX_USUARIO_NAME"));
      bean.setNUM_USUARIOID(rs.getInt("NUM_USUARIOID"));
//      bean.setTX_USUARIO_PASS(rs.getString("TX_USUARIO_PASS"));
    }
 


    public String spMan(int tipo,UsuarioVO bean) {
        String msj = "";
        try {
            
            conn = DriverManager.getConnection(url, usuario, password);
            CallableStatement cs = conn.prepareCall("{call Man_USUARIO(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            cs.setInt(1, tipo);
            cs.setInt(2, bean.getNUM_USUARIOID());
            cs.setString(3, bean.getTX_USUARIO_NAME());
            cs.setString(4, bean.getTX_USUARIO_PASS());
            cs.setString(5, bean.getTX_APELLIDO());
            cs.setString(6, bean.getTX_NOMBRE());
            cs.setString(7, bean.getTX_MAIL());
            cs.setString(8, bean.getTX_MAIL2());
            cs.setString(9, bean.getCH_TELEFONO());
            cs.setString(10, bean.getCH_CELULAR());
            cs.setString(11, bean.getTX_CARGO());
            cs.setInt(12, bean.getNUM_DEPENDENCIA());
            cs.setString(13, bean.getCH_ESTADO());
            cs.setString(14, bean.getDT_FECHA_CREACION());
            cs.setString(15, bean.getDT_FECHA_ACTUALIZACION());

            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }

    public ArrayList<UsuarioVO> selectLista() throws SQLException {

        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<UsuarioVO> lista = new ArrayList<UsuarioVO>(0);
        //lista=null;
        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();
            sql = "select NUM_CODOBJ_PK,TX_DESCOBJ from ME_OBJ";
            rs = stmt.executeQuery(sql);
            UsuarioVO bean = null;
            while (rs.next()) {
                bean = new UsuarioVO();
                setUsuario(bean, rs);
                lista.add(bean);
            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }

    public List getlist() throws SQLException {

        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<UsuarioVO> lista = new ArrayList<UsuarioVO>(0);
        //lista=null;
        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();
            sql = "select NUM_USUARIOID,TX_USUARIO_NAME,TX_USUARIO_PASS from USUARIO";
            rs = stmt.executeQuery(sql);
            UsuarioVO bean = null;
            while (rs.next()) {
                bean = new UsuarioVO();
                setUsuarioTable(bean, rs);
                lista.add(bean);
            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }


      public UsuarioVO logeo(String user, String pass) throws SQLException {
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        UsuarioVO bean = null;
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            String sql = "select NUM_USUARIOID,TX_USUARIO_NAME FROM USUARIO where TX_USUARIO_NAME=? and TX_USUARIO_PASS=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, user);
            pstmt.setString(2, pass);
            rs = pstmt.executeQuery();
            bean = new UsuarioVO();
            if (rs.next()) {
                setUsuarioLogeo(bean, rs);
            }
            rs.close();
            pstmt.close();
        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (pstmt != null) {
                pstmt.close();
                pstmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }
        }

        return bean;
    }
 

}
